package com.du.stutestsys.util;

import com.alibaba.fastjson.JSONObject;

import java.util.List;
//du封装的一些Util方法
public class DuUtil extends RuntimeException {   //第一步 继承RuntimeException
    //多表同步增删改时，某一个表执行SQL失败，则手动抛出异常--回滚数据
    public static boolean isAdds(Boolean[] booleans) throws RuntimeException{
        boolean ok = false;
        try{
            for (Boolean aBoolean : booleans) {
                System.out.println(aBoolean);
                if (aBoolean == false){
//                    第二步手动制造异常
                    throw new RuntimeException("多表操作sql执行失败");
                }
            }
            ok = true;
        }catch (RuntimeException e){
            e.printStackTrace();
            System.out.println("捕获异常:"+e.toString());
            throw new RuntimeException();   // 第三步：抛出RuntimeException()异常 必不可缺
        }
        return ok;
    }

    //是否分页和分页多少条方法  如果object是空则不分页
    public static PageUtil setPageUtil(Object object,int index,int count) {
        PageUtil pageUtil = new PageUtil();
        if (object != null) {
            System.out.println("！空");
            pageUtil =  new PageUtil(index, count);
        }else {
            return null;
        }
        return pageUtil;
    }
    //查询返回前端json
    //参一：返回结果 参二：返回集合 参三：返回集合的名字 参四：分页
    public static JSONObject success(boolean ok, List<?> list, String listName,PageUtil pageUtil){
        JSONObject jsonObject = new JSONObject();

        if (pageUtil !=null){
            pageUtil.setTotal(list.size());
            jsonObject.put("PageUtil",pageUtil);
        }
        System.out.println("pp"+list.size());
        jsonObject.put("success", ok);
        jsonObject.put(listName, list);

        return jsonObject;
    }

    //查询返回前端json2.0 控制层不需要传查询结果
    //参一：返回集合 参二：返回集合的名字 参三：分页
    public static JSONObject success(List<?> list, String listName,PageUtil pageUtil){
        JSONObject jsonObject = new JSONObject();

        if (pageUtil !=null){
            pageUtil.setTotal(list.size());
            jsonObject.put("PageUtil",pageUtil);
        }
        System.out.println("pp"+list.size());
        jsonObject.put("success", list.size()>0);
        jsonObject.put(listName, list);

        return jsonObject;
    }

    //增删改事件返回前端json
    public static JSONObject success(boolean ok){
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("success", ok);
        return jsonObject;
    }

}
